/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 64355
 * Date: 2022-08-09
 * Time: 18:03
 */
public class Date {
    public int year;
    public int month;
    public int day;
    // 无参构造方法--内部给各个成员赋值初始值，该部分功能与三个参数的构造方法重复
    // 此处可以在无参构造方法中通过this调用带有三个参数的构造方法
    // 但是this(1900,1,1);必须是构造方法中第一条语句
    public Date(){
        //System.out.println(year); 注释取消掉，编译会失败
        this(2022, 5, 11);
        //this.year = 1900;
        //this.month = 1;
        this.day = 1;
    }
    // 带有三个参数的构造方法

    public Date(int year, int month, int day) {

    }

    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        this.year = year;
    }

    public int getMonth() {
        return month;
    }

    public void setMonth(int month) {
        this.month = month;
    }

    public int getDay() {
        return day;
    }

    public void setDay(int day) {
        this.day = day;
    }

    public void printDate() {
        System.out.println(year + "-" + month + "-" + day);
    }

    public static void main(String[] args) {
        Date date=new Date();
        date.printDate();
    }
}

//public class Date {
//    public int year = 1900;
//    public int month = 1;
//    public int day = 1;
//    public Date(){
//        System.out.println(123);
//    }
//    public Date(int year, int month, int day) {
//    }
//    public static void main(String[] args) {
//        Date d1 = new Date(2021,6,9);
//        Date d2 = new Date();
//    }
//}
//




//public class Date {
//
//        public int year;
//        public int month;
//        public int day;
//        // 无参构造方法--内部给各个成员赋值初始值，该部分功能与三个参数的构造方法重复
//        // 此处可以在无参构造方法中通过this调用带有三个参数的构造方法
//        // 但是this(1900,1,1);必须是构造方法中第一条语句
//        public Date(){
////          System.out.println(year); 注释取消掉，编译会失败
//            this(2022, 5, 11);
//            //this.year = 1900;
//            //this.month = 1;
//            this.day = 1;
//        }
//        // 带有三个参数的构造方法
//        public Date(int year, int month, int day) {
//            this.year = year;
//            this.month = month;
//            this.day = day;
//        }
//        public void printDate() {
//            System.out.println(year + "-" + month + "-" + day);
//        }
//
//        public static void main(String[] args) {
//            Date date=new Date();
//            date.printDate();
//        }
//    }

//
//        public int year;
//        public int month;
//        public int day;
//
//    public Date(int year, int day) {
//        this.year = year;
//        this.day = day;
//    }
//
//    public Date(int year, int month, int day) {
//        this.year = year;
//        this.month = month;
//        this.day = day;
//    }
//
//    //        public Date(int year, int month, int day) {
////            this.year = year;
////            this.month = month;
////            this.day = day;
////        }
//        public void printDate(){
//            System.out.println(year + "-" + month + "-" + day);
//        }
//        public static void main(String[] args) {
//            // 如果编译器会生成，则生成的构造方法一定是无参的
//            // 则此处创建对象是可以通过编译的
//            // 但实际情况是：编译期报错
//            Date d = new Date();
//            d.year=2022;
//            d.printDate();
//        }
/*
Error:(26, 18) java: 无法将类 extend01.Date中的构造器 Date应用到给定类型;
需要: int,int,int
找到: 没有参数
原因: 实际参数列表和形式参数列表长度不同
*/

